package com.smallA.association.mapper;

import com.smallA.association.pojo.Association;
import com.smallA.association.vo.RegistrationData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 社团介绍页面相关
 *
 * @author wanda
 */
@Mapper
@Repository
public interface AssociationMapper {

    /**
     * 添加注册信息用
     *
     * @param data 注册信息
     * @return 返回添加的个数
     */
    int insertAssociationByRegistrationData(RegistrationData data);

    /**
     * 更新社团表中的数据
     *
     * @param association 社团类
     * @return 返回更新的社团表
     */
    int updateByAssociation(Association association);

    /**
     * 通过id查询对应的社团数据
     *
     * @param id 社团id
     * @return 返回查询到的社团类
     */
    Association selectById(@Param("id") Integer id);

    /**
     * 通过用户id查询对应的社团信息
     *
     * @param uid 用户id
     * @return 返回查询到的社团
     */
    Association selectByUserId(@Param("uid") Integer uid);

    /**
     * 查询所有符合账号状态的社团, state = 1 账号正常, state = 2 账号封禁中, state = 0 账号注册ing
     *
     * @param state 要求的账号状态
     * @return 返回查询到的社团集合
     */
    List<Association> selectAllAssociation(@Param("state") Integer state);

    /**
     * 通过name模糊查询查找社团信息
     * @param name 社团名称
     * @return Association
     */
    Association selectByAssName(@Param("name") String name);
}
